Externalizing Java Server Concurrency with CAL
نویسندگان
چکیده
One of the most important decisions about the architecture of a server program is its concurrency mechanisms. However, a good concurrency model for general-purpose server programs is increasingly difficult to conceive as the runtime conditions are hard to predict. In this work, we advocate that the concurrency code is to be decoupled from server programs. To enable such separation, we propose and evaluate CAL, — the Concurrency Aspect Library. CAL provides uniform concurrency programming abstractions and mediates the intrinsic differences among concurrency models. Through CAL, a server program is not tied to any particular concurrency model and framework. CAL can be configured without modifications to use concurrency frameworks of fundamentally different natures. The concurrency code based on CAL is simpler and looks closer to the design. Leveraging the customizability of CAL, we show that a commercial middleware server, refactored to use CAL, outperforms its original version by as much as 10 times.
منابع مشابه
Concurrency in Java and in Erlang
Concurrency (and Java’s threads in particular) is a very important tool for writing programs that must communicate with many other programs or with several people. The most important example of a concurrent system is perhaps multi-tasking operating systems which allow several programs to be run at the same time. In a web server, concurrency means that a single web server can server many request...
متن کاملUtilizing Object-Oriented Databases for Concurrency Control in Virtual Environments
Virtual Reality Modeling Language (VRML) is widely used to represent, create, and display virtual reality objects and their environment. Some VRML applications require concurrent interaction by multiple users in a real-time distributed fashion. Such applications need a method for users to share and update the VRML objects in real-time. To allow concurrent shared real-time access, our approach i...
متن کاملJSPICE: a component-based distributed Java front-end for SPICE
The design and implementation of a component-based distributed Java front-end for the Berkeley SPICE circuit-simulation program is described. The front-end is architected as a client-server application implemented via the Remote Method Invocation (RMI) API. A graphical user-interface is implemented on the client-side which has multiple components for command and control, graphing, text-editing ...
متن کاملDOVE: distributed objects based scientific visualization environment
This paper describes the design and performance of a distributed, multi-tier architecture for scienti c data visualization. A novel aspect of this framework is its integration of Java IDL, the CORBA distributed object computing middleware with JavaBeans, the Java Component model to provide a exible, interactive framework for distributed, highperformance scienti c data visualization. CORBA serve...
متن کاملInterceptors for Java Remote Method Invocation
A software interceptor is a procedure or object that interposes itself between an invoking client and an invoked server software entity. Procedural interceptors can redirect procedure invocations to alternative procedures that are selected dynamically at run time. Procedural interceptors are useful for program profiling, tracing, dynamic delegation of operation implementation, and interactive d...
متن کامل